#include<vector>
#include<iostream>
#include"Stack.h"
#include"Queue.h"
#include"priority_queue.h"
using namespace std;
void test_stack1()
{
	//zyq::stack<int> st;
	zyq::stack<int, vector<int>> st;
	st.push(1);
	st.push(2);
	st.push(3);
	st.push(4);
	st.push(5);
	while (!st.empty())
	{
		cout << st.top() << " ";
		st.pop();
	}
	cout << endl;
}
void test_queue1()
{
	zyq::queue<int> q;
	q.push(1);
	q.push(2);
	q.push(3);
	q.push(4);
	q.push(5);
	while (!q.empty())
	{
		cout << q.front() << " ";
		q.pop();
	}
	cout << endl;

}
void test_priority_queue()
{
	//zyq::priority_queue<int> pq;
	zyq::priority_queue<int,vector<int>,zyq::Greater<int>> pq;
	pq.push(2);
	pq.push(3);
	pq.push(1);
	pq.push(5);
	pq.push(4);
	pq.push(6);

	while (!pq.empty())
	{
		cout << pq.top() << " ";
		pq.pop();
	}
	cout << endl;
}
int main()
{
	//test_stack1();
	//test_queue1();
	test_priority_queue();
	return 0;
}
